home *** CD-ROM | disk | FTP | other *** search
- TABLE OF CONTENTS
-
-
- regex.library/--rexxhost--
- regex.library/--structures--
- regex.library/regcomp
- regex.library/regerror
- regex.library/regexec
- regex.library/regfree
- regex.library/--rexxhost-- regex.library/--rexxhost--
-
- HOST INTERFACE
- regex.library provides an ARexx functions interface, with offset -30,
- offering to ARexx macro just one funcion, for now, :
-
- REMATH
- Usage: res = rematch(regex,string,flags,pmatch)
- <regexp>,<string>,[flags],[pmath/V]
-
- Verify is regex , a regular expression, matches string , returning
- 0 on succes or a positive regex error code. The error string
- can be found in REGERR on failure.
-
- If flags is specified, it is one or more of:
- - ICASE Compile for matching that ignores upper/lower case distinctions.
- - OLD Compile obsolete (``basic'') REs, rather than the modern
- (``extended'') REs that are the default.
- - NEWLINE Compile for newline-sensitive matching.
- - STARTEND pmatch.SO is the start offset
- pmatch.EO-1 is the end offset
- pmatch must be specified
-
- If pmatch is specified, the fields:
- - SO index of the first character that matches
- - EO index of the character after the last that matches
- are set.
- regex.library/--structures-- regex.library/--structures--
-
- STRUCTURES
-
- The header <regex.h> declares two structure types:
- - regex_t
- - regmatch_t
- The former for compiled internal forms and the latter for match reporting.
-
- It also declares the four functions, a type regoff_t, and a number of
- constants with names starting with REG_ .
- regex.library/regcomp regex.library/regcomp
-
- NAME
- regcomp -- compiles a regular expression.
-
- SYNOPSIS
- err = regcomp(preg,pattern,cflags);
- a0 a1 d0
-
- int regcomp(regex_t *preg, const char *pattern, int cflags);
-
- FUNCTION
- Compiles the regular expression contained in the pattern string,
- subject to the flags in cflags and places the results in the
- regex_t structure pointed to by preg .
- An internal pool in the library base is used to hold any allocated
- resource. The memory is freed asap.
-
-
- INPUTS
- preg - a pointer to a regex_t where the regular expression wil be written
- pattern - the regular expression string
- Cflags - is the bitwise OR of zero or more of the following flags:
- REG_EXTENDED Compile modern (``extended'') REs,
- rather than the obsolete (``basic'') REs that
- are the default.
- REG_BASIC This is a synonym for 0, provided as a counterpart
- to REG_EXTENDED to improve readability.
- REG_NOSPEC Compile with recognition of all special characters
- turned off. All characters are thus considered ordinary,
- so the ``RE'' is a literal string.
- This is an extension, compatible with but not specified
- by POSIX 1003.2, and should be used with caution in software
- intended to be portable to other systems.
- REG_EXTENDED and REG_NOSPEC may not be used in the same call
- to regcomp .
- REG_ICASE Compile for matching that ignores upper/lower case distinctions.
- REG_NOSUB Compile for matching that need only report success or failure,
- not what was matched.
- REG_NEWLINE Compile for newline-sensitive matching. By default, newline
- is a completely ordinary character with no special meaning
- in either REs or strings. With this flag, `[^' bracket
- expressions and `.' never match newline, a `^' anchor matches
- the null string after any newline in the string in addition to
- its normal function, and the `$' anchor matches the null string
- before any newline in the string in addition to its normal
- function.
- REG_PEND The regular expression ends, not at the first NUL, but just
- before the character pointed to by the re_endp member of the
- structure pointed to by preg . The re_endp member is of type
- const char * . This flag permits inclusion of NULs in the RE;
- they are considered ordinary characters.
- This is an extension, compatible with but not specified
- by POSIX 1003.2, and should be used with caution in software
- intended to be portable to other systems.
-
- RESULT
- When successful, regcomp returns 0 and fills in the structure pointed to by
- preg . One member of that structure (other than re_endp) is publicized:
- re_nsub , of type size_t , contains the number of parenthesized
- subexpressions within the RE (except that the value of this member is
- undefined if the REG_NOSUB flag was used).
- If regcomp fails, it returns a non-zero error code.
- regex.library/regerror regex.library/regerror
-
- NAME
- regerror -- maps a non-zero errcode.
-
- SYNOPSIS
- size = regerror(code,preg,errbuf,errsize);
- a1 d2 d0 d1
-
- size_t regerror(int errcode, const regex_t *preg,char *errbuf, size_t errbuf_size);
-
- FUNCTION
- Maps a non-zero errcode from either regcomp or regexec to a human-readable,
- printable message. If preg is non-NULL, the error code should have arisen
- from use of the regex_t pointed to by preg , and if the error code came
- from regcomp , it should have been the result from the most recent regcomp
- using that regex_t ( regerror may be able to supply a more detailed message
- using information from the regex_t ).
- regerror places the NULL-terminated message into the buffer pointed to by
- errbuf , limiting the length (including the NULL) to at most errbuf_size
- bytes. If the whole message won't fit, as much of it as will fit before
- the terminating NULL is supplied. In any case, the returned value is the
- size of buffer needed to hold the whole message (including terminating NULL).
- If errbuf_size is 0, errbuf is ignored but the return value is still correct.
-
- INPUT
- errcode - a regex positive error code
- preg - a preg or NULL
- errbuf - a buffer or NULL
- errbuf_size - size of errbuf
-
- RESULT
- Size to hold the complete error message.
- regex.library/regexec regex.library/regexec
-
- NAME
- regexec -- matches a RE against a string.
-
- SYNOPSI
- err = regexec(preg,string,nmatch,pmatch[],eflags);
- a1 d0 d1 d2 d3
-
- int regexec(const regex_t *preg, const char *string,
- size_t nmatch, regmatch_t pmatch[], int eflags);
-
- FUNCTION
- Matches the compiled RE pointed to by preg against the string ,
- subject to the flags in eflags , and reports results using nmatch ,
- pmatch , and the returned value.
- The RE must have been compiled by a previous invocation of regcomp .
- The compiled form is not altered during execution of regexec ,
- so a single compiled RE can be used simultaneously by multiple threads.
-
- By default, the NUL-terminated string pointed to by string
- is considered to be the text of an entire line, minus any terminating
- newline. The eflags argument is the bitwise OR of zero or more of the
- following flags:
- - REG_NOTBOL The first character of the string is not the beginning of
- a line, so the `^' anchor should not match before it.
- This does not affect the behavior of newlines under REG_NEWLINE.
- - REG_NOTEOL The NUL terminating the string does not end a line, so the
- `$' anchor should not match before it. This does not affect
- the behavior of newlines under REG_NEWLINE.
- - REG_STARTEND The string is considered to start at
- string + pmatch[0].rm_so
- and to have a terminating NUL located at
- string + pmatch[0].rm_eo
- (there need not actually be a NUL at that location),
- regardless of the value of nmatch .
- See below for the definition of pmatch and nmatch .
- This is an extension, compatible with but not specified
- by POSIX 1003.2, and should be used with caution in software
- intended to be portable to other systems.
- Note that a non-zero rm_so does not imply REG_NOTBOL;
- affects only the location of the string, not how it is
- matched.
-
- Normally, regexec returns 0 for success and the non-zero code REG_NOMATCH
- for failure. Other non-zero error codes may be returned in exceptional
- situations.
-
- If REG_NOSUB was specified in the compilation of the RE, or if nmatch
- is 0, regexec ignores the pmatch argument (but see below for the case
- where REG_STARTEND is specified). Otherwise, pmatch points to an array of
- nmatch structures of type regmatch_t . Such a structure has at least the
- members rm_so and rm_eo , both of type regoff_t (a signed arithmetic type
- at least as large as an off_t and a ssize_t ), containing respectively the
- offset of the first character of a substring and the offset of the first
- character after the end of the substring.
- Offsets are measured from the beginning of the string argument given to
- regexec .
- An empty substring is denoted by equal offsets, both indicating the
- character following the empty substring.
-
- The 0th member of the pmatch array is filled in to indicate what substring
- of string was matched by the entire RE.
- Remaining members report what substring was matched by parenthesized
- subexpressions within the RE;
- member i reports subexpression i , with subexpressions counted
- (starting at 1) by the order of their opening parentheses in the RE, left
- to right. Unused entries in the array (corresponding either to
- subexpressions that did not participate in the match at all, or to
- subexpressions that do not exist in the RE (that is,
- i > preg->re_nsub) (have both rm_so and rm_eo set to -1.
- If a subexpression participated in the match several times, the reported
- substring is the last one it matched.
- (Note, as an example in particular, that when the RE `(b*)+' matches `bbb',
- the parenthesized subexpression matches each of the three `b's and then
- an infinite number of empty strings following the last `b',
- so the reported substring is one of the empties.)
-
- If REG_STARTEND is specified, pmatch must point to at least one regmatch_t
- (even if nmatch is 0 or REG_NOSUB was specified), to hold the input offsets
- for REG_STARTEND. Use for output is still entirely controlled by nmatch ;
- if nmatch is 0 or REG_NOSUB was specified, the value of pmatch [0] will not
- be changed by a successful regexec .
-
- INPUTS
- preg - a regular expression pointer
- nmatch - number of element in pmatch
- pmatch - holds result
- eflags - flags
-
- RESULT
- 0 on matching or a positive regex error code.
- regex.library/regfree regex.library/regfree
-
- NAME
- regfree -- free a RE .
-
- SYNOPSI
- regfree(preg);
- a0
-
- void regfree(regex_t *preg);
-
- FUNCTION
- Frees any dynamically-allocated storage associated with the compiled RE
- pointed to by preg . The remaining regex_t is no longer a valid compiled
- RE and the effect of supplying it to regexec or regerror is undefined.
-
- INPUT
- preg - a pointer to a reg expression compiled with recomp.
-
-